package com.rw.engine.asynchronous.anno;

import com.rw.engine.asynchronous.aspect.AsyncDeliver;
import com.rw.engine.asynchronous.aspect.DefaultAsyncDeliver;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 异步方法注解
 * 使用这个注解的方法，在调用的时候会改为异步
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AsyncMethod {
    // 投递方式
    Class<? extends AsyncDeliver> asyncDeliver() default DefaultAsyncDeliver.class;
}